/**
@brief module de gestion des bombes
@file bombe.h
@date 2012/06/07
*/

#ifndef _BOMBE_H
#define _BOMBE_H

#include <time.h>
#include "terrain.h"


/**
\struct bombe bombe.h
@brief contient les coordonnées, la puissance et l'heure d'initialisation de la bombe
*/
struct bombe {
    int x;
    int y;
    int puissance;
    clock_t heureInit;
    int joueur;
}; typedef struct bombe bombe;

bombe* bombeInit(terrain* ter, const int x, const int y, const int puissance, const int numJoueur);

/**
@brief récupère coordonnée X d'une bombe
@param[in] bombe pointeur sur bombe
@return entier
*/
const int bombeGetX(const bombe* bombe);

/**
@brief récupère coordonnée Y d'une bombe
@param[in] bombe pointeur sur bombe
@return entier
*/
const int bombeGetY(const bombe* bombe);

/**
@brief récupère puissance d'une bombe
@param[in] bombe pointeur sur bombe
@return entier (0 ou 1)
*/
const int bombeGetPuissance(const bombe* bombe);

/**
@brief récupère heure d'initialisation d'une bombe
@param[in] bombe pointeur sur bombe
@return time_t
*/
const time_t bombeGetHeureInit(const bombe* bombe);

/**
@brief affiche une bombe sur un terrain
@param[in] bombe pointeur sur bombe
@param[in,out] ter pointeur sur terrain
@return none
*/
void bombeAffiche(const bombe* bombe, terrain* ter);
int bombeExplose(terrain* ter, bombe* bombe, const int x, const int y);
void bombeLibere(terrain* ter, const int i);

#endif
